package com.xiaoyy.core.dict.integration;

import com.github.pagehelper.PageInfo;
import com.xiaoyy.core.common.vo.AntTreeVO;
import com.xiaoyy.core.common.vo.DictDeleteVO;
import com.xiaoyy.core.common.vo.DictVO;
import com.xiaoyy.core.common.vo.SelectVO;

import java.util.List;
import java.util.Map;

/**
 * 数据字典服务
 * */
public interface DictIntegration {
    /**
     * 根据字段和key获取值
     * */
    String getValue(String dictField, String dictKey);
    /**
     * 根据字段获取字典值
     * @param dictField 字段
     * */
    List<SelectVO> getDict(String dictField);
    /**
     * 根据字段获取批量字典值
     * @param dictFields 批量字段，用英文逗号隔开
     * */
    Map<String,List<SelectVO>> getDictBatch(String dictFields);
    /**
     * 根据条件获取数据字典列表
     * @param dictVO
     * */
    PageInfo<DictVO> getDictList(DictVO dictVO);
    /**
     * 根据Id 获取详情
     *
     * */
    DictVO getDictDetail(DictVO dictVO);
    /**
     * 获取字段数据字典
     * */
    List<SelectVO> getDictField();
    /**
     * 新增
     * */
    DictVO add(DictVO dictVO);
    /**
     * 修改
     * */
    DictVO edit(DictVO dictVO);
    /**
     * 删除
     * */
    void delete(DictDeleteVO dictVO);
    /**
     * 删除 批量
     * */
    void deleteBatch(DictDeleteVO dictVO);

    void clearCache(String dictField);

    /**
     * 根据orgId获取名称
     * */
    String getOrgNameById(String orgId);
    /**
     * 根据orgCode获取名称
     * */
    String getOrgNameByCode(String orgCode);
    /**
     * 根据orgCode获取Id
     * */
    String getOrgIdByCode(String orgCode);
    /**
     * 根据orgId获取code
     * */
    String getOrgCodeById(String orgId);

    /**
     * 通字段下拉通用树
     * */
    List<AntTreeVO> getDictCommonTree(String dictField);

    /**
     * 获取全国行政区划下拉树
     * */
    List<AntTreeVO> getAreaSelectTree(List<String> inData,List<String> notInData);

    /**
     * 图标下拉树
     * */
    List<AntTreeVO> getIconSelectTree();
}
